package main

import "fmt"

// 传的只是值过来，在这个函数改变了这个值，但并不能改变原来参数的值
func zeroval(ival int) {
	ival = 0
}

// 传的的是指针， 改变这个地址存的值，那么传过来的参数自然也会改变
func zeroptr(iptr *int) {
	fmt.Println("地址", iptr) //输出的是地址
	fmt.Println("值", *iptr) //输出的是这个地址存的值
	*iptr = 0
}

func main() {
	i := 1
	fmt.Println("initial:", i)

	zeroval(i)
	fmt.Println("zeroval:", i)

	zeroptr(&i)
	fmt.Println("zeroptr:", i)

	fmt.Println("pointer:", &i)
}
